package it.uniroma2.art.owlart.langsearch.index.config;

import java.util.Collection;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.document.Field;

public interface IndexingConfiguration {

	/**
	 * @param lang
	 * @return a proper analyzer for the chosen <code>lang</code>
	 */
	Analyzer getAnalyzerForLabels(String lang);

	/**
	 * this information tells the indexer if indexed labels have to be tokenized in the index or not. This
	 * translates into {@link Field.Index#ANALYZED} or {@link Field.Index#NOT_ANALYZED}
	 * 
	 * @return
	 */
	boolean areLabelsTokenized();

	/**
	 * the languages which will be indexed
	 * 
	 * @return
	 */
	Collection<String> getIndexedLanguages();

	/**
	 * for those datasets where the local names of RDF resources may be expressed in one or more natural
	 * languages (and not just codes), it may be helpful to declare those languages
	 * 
	 * @return
	 */
	Collection<String> getLanguagesOfURILocalNames();

}
